package com.fw.service.merchantuser;

import java.io.Serializable;
import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.fw.service.bean.EntryBean;
import com.fw.service.bean.SearchCriteriaBean;
import com.fw.service.bean.SearchResultBean;
import com.fw.service.merchantuser.bean.MerchantUserBean;
import com.fw.service.merchantuser.bean.SearchMerchantUserBean;

/**
 * Description: CRUD Merchant User
 * 
 * @author A0373
 *
 */
public interface MerchantUserService {

    // "java.util.List.com.fw.service.bean.ErrorBean", List<ErrorBean>
    // "com.fw.service.merchantuser.MerchantUserBean", MerchantUserBean

    @Transactional
    public List<EntryBean<String, Serializable>> createMerchantUser(MerchantUserBean merchantUserBean);

    public MerchantUserBean getMerchantUser(Long id);

    @Transactional
    public List<EntryBean<String, Serializable>> updateMerchantUser(MerchantUserBean merchantUserBean);

    @Transactional
    public List<EntryBean<String, Serializable>> deleteMerchantUser(MerchantUserBean merchantUserBean);

    public Boolean checkUniqueUsername(String username);

    public List<MerchantUserBean> selectAllMerchantUser();

    public SearchResultBean<MerchantUserBean> selectMerchantUser(SearchCriteriaBean<SearchMerchantUserBean> searchCriteriaBean);

    @Transactional
    public List<EntryBean<String, Serializable>> resetPasswordMerchantUser(MerchantUserBean merchantUserBean);

}
